tooltipwindow: Stop using the ::size-allocate signal
authorMatthias Clasen <mclasen@redhat.com>
Wed, 6 May 2020 02:11:55 +0000 (22:11 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Wed, 6 May 2020 18:27:45 +0000 (14:27 -0400)
Instead of connecting to ::size-allocate, call
gtk_native_set_tooltip and rely on the native
to allocate the tooltip window.

gtk/gtktooltipwindow.c

index 9ab1bbe698881a7bf8025b8b4161c8a07ac956bb..3c36b826911bdfbdddb0952f252425aa9b95ac4c 100644 (file)
@@ -355,22 +355,13 @@ gtk_tooltip_window_hide (GtkWidget *widget)
   gtk_widget_unmap (widget);
 }
 
-static void size_changed (GtkWidget        *widget,
-                          int               width,
-                          int               height,
-                          int               baseline,
-                          GtkTooltipWindow *window);
-
 static void
 gtk_tooltip_window_dispose (GObject *object)
 {
   GtkTooltipWindow *window = GTK_TOOLTIP_WINDOW (object);
 
   if (window->relative_to)
-    {
-      g_signal_handlers_disconnect_by_func (window->relative_to, size_changed, window);
-      gtk_widget_unparent (GTK_WIDGET (window));
-    }
+    gtk_widget_unparent (GTK_WIDGET (window));
 
   g_clear_pointer (&window->box, gtk_widget_unparent);
 
@@ -523,16 +514,6 @@ gtk_tooltip_window_set_custom_widget (GtkTooltipWindow *window,
     }
 }
 
-static void
-size_changed (GtkWidget        *widget,
-              int               width,
-              int               height,
-              int               baseline,
-              GtkTooltipWindow *window)
-{
-  gtk_native_check_resize (GTK_NATIVE (window));
-}
-
 void
 gtk_tooltip_window_set_relative_to (GtkTooltipWindow *window,
                                     GtkWidget        *relative_to)
@@ -545,20 +526,12 @@ gtk_tooltip_window_set_relative_to (GtkTooltipWindow *window,
   g_object_ref (window);
 
   if (window->relative_to)
-    {
-      g_signal_handlers_disconnect_by_func (window->relative_to, size_changed, window);
-      gtk_widget_unparent (GTK_WIDGET (window));
-    }
+    gtk_widget_unparent (GTK_WIDGET (window));
 
   window->relative_to = relative_to;
 
   if (window->relative_to)
-    {
-      g_signal_connect (window->relative_to, "size-allocate", G_CALLBACK (size_changed), window);
-      gtk_css_node_set_parent (gtk_widget_get_css_node (GTK_WIDGET (window)),
-                               gtk_widget_get_css_node (relative_to));
-      gtk_widget_set_parent (GTK_WIDGET (window), relative_to);
-    }
+    gtk_widget_set_parent (GTK_WIDGET (window), relative_to);
 
   g_object_unref (window);
 }